-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
op-node: Record genesis as being safe from L1 genesis #9684
Conversation
8ea12ae
to
9992611
Compare
9992611
to
c0e0ff3
Compare
WalkthroughWalkthroughThe recent updates focus on enhancing the handling of safe head updates and reorganizations within the system. This includes adjustments in error handling during block rewinds and replays, initialization changes in faultproof tests, and ensuring the L1 genesis block is always considered safe. Additionally, there's a simplification in the testing setup and the removal of a redundant job from the CI configuration. Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
c0e0ff3
to
065afd8
Compare
065afd8
to
672bcf9
Compare
672bcf9
to
3639c8f
Compare
3639c8f
to
0f06b14
Compare
Description
When the derivation pipeline resets and the safe head is genesis, record that in the safe head database. This allows a node that syncs from genesis (or bedrock activation block) to have a complete safe head database instead of it starting only at the first safe head update.
The L2 genesis is considered to have always been safe since no batch data needs to be read to construct it. Importantly the safe head database entry records the actual L1 genesis block, not the rollup config
Genesis.L1
value since the contracts will have been deployed to the L1 before theGenesis.L1
value, potentially allowing dispute games to be created before then and the challenger needs to be able to respond to them. The challenger can only respond if it knows the L2 block that is safe at the game's L1 head. Using the real L1 genesis block as the entry key ensures the L2 genesis is safe for every L1 block and thus every possible dispute game.Tests
Updated action test.
Updated e2e tests to confirm the challenger can dispute games even for chains where the safe head has never advanced.
Metadata